The present invention relates generally to cloud computing, and more particularly, to secure password-based authentication for cloud computing resource access.
Cloud computing is becoming an increasingly popular mode for computerized access to both data and application programs. By using cloud computing, users may provide a centralized depository for shared data, a secure backup and file storage, use of applications programs that can run on relatively higher-speed cloud servers, etc. By using cloud computing services, users may increase the level of integrity of their data in that a third party with a dedicated focus on data processing is in charge of maintaining the security and integrity of data. Cloud computing users may feel relatively certain that their data is backed up and their security maintained by the cloud service provider (CSP).
Another advantage for users of cloud-computing services is the access to powerful application programs that may be prohibitively or unnecessarily expensive for a user to acquire and maintain. A cloud-service provider may provide access to certain application programs either for a small fee or on some other revenue model that is advantageous to their users as compared to the users having the same or equivalent programs running locally on user machines.
One crucial aspect for the cloud computing model to work is that the data managed by the CSPs on behalf of their users must be secure and that only authorized individuals and entities may access application programs hosted in the cloud. Traditionally such user validation is performed using the username-password model. The username-passwords are transmitted to the API of the CSP by a client program executing on a client computer. Often the username-passwords are embedded in requests made to the CSP by the client program.
The aforementioned authentication mechanism is prone to attack. Because client computers and client programs are used to formulate requests, the client program is aware of the password and thus cannot be completely trusted. Furthermore, the password is vulnerable to phishing attacks, to snooping, to poor user practices such as leaving passwords on notes, to keystroke loggers, etc.
However, even with such vulnerabilities, cloud service providers are reluctant to adopt more secure authentication methods—such as digital signatures, TLS mutual authentication, or cryptographic hash—that do not reveal passwords to the client programs because doing so would require expensive and cumbersome modifications to the cloud service infrastructure.
From the foregoing it will be apparent that there is still a need for an improved mechanism for secure password-based cloud computing application programming interfaces without burdening cloud computing service providers with extensive modifications to cloud computing infrastructure.